/**
 * 全站http配置
 *
 * axios参数说明
 * isSerialize是否开启form表单提交
 * isToken是否需要token
 */
import axios from 'axios';
import NProgress from 'nprogress'; // progress bar
axios.defaults.timeout = 10000;

//返回其他状态吗
axios.defaults.validateStatus = function (status) {
    return status >= 200 && status <= 500; // 默认的
};


//跨域请求，允许保存cookie
axios.defaults.withCredentials = true;
axios.defaults.baseURL = 'http://117.34.99.190:8083'
// axios.defaults.baseURL = 'http://127.0.0.1:8082'
// NProgress Configuration
NProgress.configure({
    showSpinner: false
});


//HTTP request拦截
axios.interceptors.request.use(config => {
    // console.debug(" 发起请求:", config.url)
    // start progress bar
    NProgress.start();
    // 请求中添加token
    // let token = sessionStorage.getItem("TOKEN");
    // config.headers["TOKEN"] = token;
    return config;
}, error => {
    return Promise.reject(error)
});



//HTTP response拦截
axios.interceptors.response.use(res => {
    NProgress.done();
    const status = Number(res.data.errorCode) || 200;
    const message = res.message || '后台服务走丢了,请稍后重试...';

    // 判断是否是文件，是文件就直接返回
    if ((res.data != null && res.data instanceof Blob)
        || (res.headers["content-type"] != null && res.headers["content-type"].indexOf('application/octet-stream') != -1)) {
        return res;
    }

    // 请求成功
    if (res.data.errorCode == 0) {
        // 成功提示
    }

    return res;
}, error => {
    NProgress.done();
    return Promise.reject(new Error(error));
});

export default axios;